/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

import NegocioVO.*;

import javax.swing.JOptionPane;
import javax.xml.parsers.*;

import observer.Observer;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import delegate.RestauranteDelegate;
/**
 *
 * @author nsartori
 */
public class CompraInsumos1de2 extends javax.swing.JInternalFrame implements Observer {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
     * Creates new form JInternalFrameReciboMercaderia
     */
    public CompraInsumos1de2() {
        initComponents();
        RestauranteDelegate.registerObserver(this);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jFileChooser1 = new javax.swing.JFileChooser();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenuArchivo = new javax.swing.JMenu();
        jMenuItemAbrirArchivo = new javax.swing.JMenuItem();

        setClosable(true);

        jFileChooser1.setEnabled(false);
        jFileChooser1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jFileChooser1ActionPerformed(evt);
            }
        });

        jMenuArchivo.setText("Archivo");

        jMenuItemAbrirArchivo.setText("AbrirArchivo");
        jMenuArchivo.add(jMenuItemAbrirArchivo);

        jMenuBar1.add(jMenuArchivo);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jFileChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jFileChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 4, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    @SuppressWarnings("deprecation")
	private void jFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jFileChooser1ActionPerformed
      File file=jFileChooser1.getSelectedFile();
      
      String filename=file.getName();
      String[] parts=filename.split("___");
      String nombreProveedor=parts[0];
      String nombreDeposito=parts[1];
      
      
      for(int i=0;i<parts.length;i++)
      {
    	  System.out.println("File part: "+parts[i]);
      }
      
      
      try
      {
    	  DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
          DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
          
    	  Document doc = dBuilder.parse(file);
    	  NodeList nodes=doc.getElementsByTagName("producto");
    	  
    	  System.out.println("Usuario: "+RestauranteDelegate.getLoggedUser().getIdEmpleado());
    	  
    	  Vector<ItemRequerimientoVO> productos=new Vector<ItemRequerimientoVO>();
    	  
    	  for(int i=0;i<nodes.getLength();i++)
    	  {
    		  Element e=(Element) nodes.item(i);
    		  String nombre=e.getElementsByTagName("nombre").item(0).getChildNodes().item(0).getNodeValue();
    		  
    		  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    		  Date vencimiento=sdf.parse(e.getElementsByTagName("fecha_vencimiento").item(0).getChildNodes().item(0).getNodeValue());
    		  
    		  
    		  ItemRequerimientoVO aux=new ItemRequerimientoVO();
    		  ProductoVO auxProd=new ProductoVO();
    		  
    		  
    		  
    		  auxProd.setNombre(nombre);
    		  aux.setFechaVencimiento(vencimiento);
    		  
    		  aux.setCantidad(new Integer(e.getElementsByTagName("cantidad").item(0).getChildNodes().item(0).getNodeValue()));
    		  aux.setProduc(auxProd);
    		  
    		  
    		 
    		  productos.add(aux);
    		  
    	  }
    	  this.dispose();
    	  RestauranteDelegate.altaProductosDeposito(nombreDeposito, nombreProveedor, productos);
      }
      catch(Exception e)
      {
    	  e.printStackTrace();
      }

      
      /*
      BufferedReader br;
      try 
      {
    	  	br = new BufferedReader(new FileReader(file));
    	  	String st="";
    	  	while((st=br.readLine())!=null)
    	  	{
	          System.out.println(st);
    	  	}
      } catch (FileNotFoundException e) {
		e.printStackTrace();
      } catch (IOException e) {
		e.printStackTrace();
      }
      */
      
       jFileChooser1.disable();
               
    }//GEN-LAST:event_jFileChooser1ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JFileChooser jFileChooser1;
    private javax.swing.JMenu jMenuArchivo;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItemAbrirArchivo;
    // End of variables declaration//GEN-END:variables
	
    @Override
	public void update(String CMD, Object Response) {
		// TODO Auto-generated method stub
		if("altaProductoDeposito".equals(CMD))
		{
			String msg="";
			if(Response.toString().contains(":"))
			{
				String[]arr=Response.toString().split(":");
				msg=arr[arr.length-1];
			}
			else
			{
				msg=Response.toString();
				if(msg.equals("")) msg="Alta exitosa";
			}
			JOptionPane.showMessageDialog(null, msg);
			
		}
	}
}
